Some computer software is provided to the consumer on a CD-ROM along with an installer. To install the computer software on a single computer, the installer, such as the conventional InstallShield product commercially available from InstallShield Software Corporation of Schaumburg, Ill., is operated on a computer system, and the installer installs the software from the CD-ROM. The installer may retrieve from the CD-ROM compressed versions of files that make up the computer software, decompress them and copy them into the user's hard drive using an existing or newly created directory specified by the user. In addition to installing new files, the installer may alter certain existing files such as the Windows Registry in a computer system running the conventional Windows 95 operating system commercially available from Microsoft Corporation of Redmond, Wash.
The installer performs these functions not only according to instructions provided by the manufacturer or distributor of the computer software, but also according to instructions provided by the user of the installer. For example, the installer may prompt the user to specify the type of installation. Types of installation may be selected from a typical installation, containing commonly used files, a full installation containing all files, a basic installation containing only a minimum number of files, or specified files or groups of files. Other instructions may be provided to the installer such as the location of a new directory used to contain many of the new files. The installer uses these instructions and other instructions provided by the manufacturer or distributor of the computer software being installed to perform the necessary changes on the user's computer system.
Although installers can work well for installing software on a single computer, conventional installers have not provided capabilities desirable for installation of software on a large number of computer systems. Instead, management software has been developed to allow automated distribution of computer programs to a large number of computer systems. Management software, such as that described in the related applications, allows client management software on client computer systems to connect to a server management software on one or more server computer systems and receive any necessary files and instructions on how to install the files. For example, to install computer software on a wide variety of computer systems, the entire contents of the CD-ROM containing the files and installer described above could be distributed from the server management software to the client management software. The user could install the new computer software as if he was installing it from the CD-ROM.
Although conventional management software can help to install all types of files on a large number of computer systems, it does not provide the level of control that some administrators desire. Many administrators prefer software to be installed over many computer systems in a consistent manner to make supporting that software easier. To install computer software in a consistent manner using the approach described above would require the user to provide the proper instructions to the installer. To allow each user to consistently install the computer software using conventional management software, the user would have to be provided with detailed installation instructions, which are difficult to produce. Even then, user error would likely cause the software to be installed differently from one computer to the next making support more difficult and expensive making support more difficult and expensive.
If it were possible to identify the changes that the proper installation made to one computer system, it would be possible to provide to management software instructions and files for making those same changes on other computer systems. However, such an approach can involve checking thousands of files for differences, some of which are extremely subtle. Thus, such an approach would be time consuming and subject to error.
What is needed is a method and apparatus that can automatically identify changes made to a computer system during the installation of computer software.